﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using GestorDeFlotasDesktop.Classes;
using System.Data.SqlClient;

namespace GestorDeFlotasDesktop
{
    public partial class frmAcciones : Form
    {
        public frmAcciones()
        {
            InitializeComponent();
        }
        private GestorDeFlotasDesktop.RegistrarViaje.RegistrarViajes formRegistrarViaje;
        private GestorDeFlotasDesktop.AbmRol.frmAbmUsuario frmUsuario;
        private GestorDeFlotasDesktop.AbmCliente.AbmCliente frmAbmCliente;
        private GestorDeFlotasDesktop.AbmRol.frmRol frmAbmRol;
        private GestorDeFlotasDesktop.AbmAuto.formTaxi frmAbmAuto;
        private GestorDeFlotasDesktop.AbmReloj.AbmReloj frmAbmReloj;
        private GestorDeFlotasDesktop.AbmChofer.AbmChofer frmAbmChofer;
        private GestorDeFlotasDesktop.AbmTurno.AbmTurno frmAbmTurno;
        private GestorDeFlotasDesktop.AsignarChoferAuto.frmAsignarChoferAuto frmAsignarChoferAuto;
        private GestorDeFlotasDesktop.CuentaChofer.frmCuentaChofer frmCuentaChofer;
        private GestorDeFlotasDesktop.Facturar.Facturar frmFacturar;
        private GestorDeFlotasDesktop.Estadistica.frmEstadistica frmEstadistica;

        public void cargarDatosUsuario(Usuario oUsuario)
        {
            Usuarios oUsuarios = new Usuarios();
            this.Text = "Bienvenido " + oUsuario.strUsername;
            List<Rol> lstRoles = oUsuarios.getRoles(oUsuario.strUsername);
            List<Funcionalidad> lstFuncionalidad = new List<Funcionalidad>();
            for (int a = 0; a < lstRoles.Count; a++)
            {
                for (int i = 0; i < lstRoles[a].lstFuncionalidad.Count ; i++)
                {
                    if (!lstFuncionalidad.Contains(lstRoles[a].lstFuncionalidad[i]))
                    {
                        lstFuncionalidad.Add(lstRoles[a].lstFuncionalidad[i]);
                    }
                }
            }
            cmbAcciones.DataSource = lstFuncionalidad;
            cmbAcciones.DisplayMember = "strFuncionalidad";
            cmbAcciones.ValueMember = "intCodFuncionalidad";

        }
        private void frmAcciones_Load(object sender, EventArgs e)
        {

        }

        private void btnRegistrarViaje_Click(object sender, EventArgs e)
        {
            switch (Convert.ToInt32(cmbAcciones.SelectedValue))
            {
                case 1:
                    frmAbmCliente = new GestorDeFlotasDesktop.AbmCliente.AbmCliente();
                    frmAbmCliente.MdiParent = this.MdiParent;
                    frmAbmCliente.Show();
                    break;
                case 2:
                    frmAbmRol = new GestorDeFlotasDesktop.AbmRol.frmRol();
                    frmAbmRol.MdiParent = this.MdiParent;
                    frmAbmRol.Show();
                    
                    break;
                case 3:
                    frmUsuario = new GestorDeFlotasDesktop.AbmRol.frmAbmUsuario();
                    frmUsuario.MdiParent = this.MdiParent;
                    frmUsuario.inicializarAgregar();
                    frmUsuario.cargarUsuarios();
                    frmUsuario.Show();
                    break;
                case 4:
                    frmAbmAuto = new GestorDeFlotasDesktop.AbmAuto.formTaxi();
                    frmAbmAuto.MdiParent = this.MdiParent;
                    frmAbmAuto.Show();
                    break;
                case 5:
                    frmAbmReloj = new GestorDeFlotasDesktop.AbmReloj.AbmReloj();
                    frmAbmReloj.MdiParent = this.MdiParent;
                    frmAbmReloj.Show();
                    break;
                case 6:
                    frmAbmChofer = new GestorDeFlotasDesktop.AbmChofer.AbmChofer();
                    frmAbmChofer.MdiParent = this.MdiParent;
                    frmAbmChofer.Show();
                    break;
                case 7:
                    frmAbmTurno = new GestorDeFlotasDesktop.AbmTurno.AbmTurno();
                    frmAbmTurno.MdiParent = this.MdiParent;
                    frmAbmTurno.Show();
                    break;
                case 8:
                    frmAsignarChoferAuto = new GestorDeFlotasDesktop.AsignarChoferAuto.frmAsignarChoferAuto();
                    frmAsignarChoferAuto.MdiParent = this.MdiParent;
                    frmAsignarChoferAuto.Show();
                    break;
                case 9:
                    formRegistrarViaje = new GestorDeFlotasDesktop.RegistrarViaje.RegistrarViajes();
                    formRegistrarViaje.MdiParent = this.MdiParent;
                    formRegistrarViaje.Show();
                    break;
                case 10:
                    frmCuentaChofer = new GestorDeFlotasDesktop.CuentaChofer.frmCuentaChofer();
                    frmCuentaChofer.MdiParent = this.MdiParent;
                    frmCuentaChofer.Show();
                    break;
                case 11:
                    frmFacturar = new GestorDeFlotasDesktop.Facturar.Facturar();
                    frmFacturar.MdiParent = this.MdiParent;
                    frmFacturar.Show();
                    break;
                case 12:
                    frmEstadistica = new GestorDeFlotasDesktop.Estadistica.frmEstadistica();
                    frmEstadistica.MdiParent = this.MdiParent;
                    frmEstadistica.Show();
                    break;

            }

        }

        private void frmAcciones_FormClosed(object sender, FormClosedEventArgs e)
        {
            GestorDeFlotasDesktop.Login.frmLogin frmLogin = new GestorDeFlotasDesktop.Login.frmLogin();
            frmLogin.MdiParent = this.MdiParent;
            frmLogin.Show();
        }

    }
}
